In recent years, global data communication networks, such as World Wide Web or Internet, have experienced explosive growth. Furthermore, there has been a huge increase in the number of private networks that use protocols and standards similar to those used in the public Internet. However, these private networks, or “Intranets”, are used by corporations and authorized users only.
Users of these networks are experiencing severe communication constraints due to the inefficient handling of existing standards and the overload of the network. These networks are using several communication protocols, including but not limited to: Transmission Control Protocol/Internet Protocol (TCP/IP) or User Datagram Protocol/Internet Protocol (UDP/IP) to establish the communication between a client that is using protocols, including but not limited to: Hyper Text Transfer Protocol (HTTP) Internet browsers and HTTP servers, FTP servers etc.
Each of these protocols will be familiar to those skilled in art and additional information pertaining to the specifics of these protocols can be found in “Internet Engineering Task Force” site: www.ietf.org, information about HTTP 1.0 can be found in RFC 1945 and about HTTP 1.1 in RFC 2068. Information about TCP can be found in RFC 793 and about UDP in RFC 768.
A common IP-based sub-network comprises multiple users that are connected through a link to a central hub. The central hub is typically connected through a Very-Wide-Band (VWB) link to the Internet or any other similar global communications network. A server is located in the central hub, in order to serve the multiple simultaneous remote clients. In such a configuration, all IP traffic from the various users to the network passes through the central hub.
FIG. 1 is a block diagram illustrating the structure of a generic environment in which various embodiments of the present invention can be implemented or utilized. For example, when the environment is a cellular communication network, a client (110) can be a cellular telephone or a laptop computer connecting via a cellular-based data modem, either of which may be running Internet browser software. In the cellular network example, the Central Hub (120) is a server located in an operator site that serves clients within its vicinity. The Central Hub (120) is connected via a VWB line (130) to the global communications network (140).
As another example, the environment may include a satellite communications network. In the satellite communications network example, the Central Hub (120) is located within a satellite station and the clients (110) are satellite communication equipment. Again, in this example, the Central Hub (120) is connected to a global communications network through the use of a VWB line.
Other exemplary embodiments are also suitable for reaping the benefits of the present invention, the most notable being within a typical data communications network setting in which the Central Hub (120) can be an Internet Service Provider and the various clients (110) are data terminals that access the Internet through various means such as web browsers.
A subset of the traffic carried over IP based networks, such as the Internet, includes images or picture files. Due to the large volume of data that image and picture files require, they are usually encoded by compression algorithms, such as the compression algorithms utilized within the JPEG and MPEG standards. These and other compression algorithms are familiar to those skilled in the art and additional information regarding the specifics of these standards can be found at the following universal remote locator addresses: www.jpeg.org; or www.mpeg.org. Even in the presences of compression, transmitting images and pictures through the Internet requires a large portion of the bandwidth capacity between a client and a central hub. Thus, further compression of the already compressed images could decrease the file size and thereby increase the bandwidth utilization in the links between the central hub and each of the clients.
Throughout the remainder of this document, the present invention is described in conjunction with the use of the TCP/IP protocol and the JPEG standard. However, it should be noted that the TCP/IP protocol and the JPEG standard are simply exemplary elements that facilitate illustrating the operation of the present invention and the present invention is in no way limited to these particular elements. In fact, those skilled in the art appreciate that other communication protocols and compression algorithms can be used with the present invention.
When re-compressing an image for transmitting over an IP network three special constraints at the central hub side are encountered:
A first constraint concerns on-the-fly compression. All traffic is handled at the TCP level. Thus, each JPEG image is split into packets, and each packet (IP frame) has a maximum data size of 1460 bytes. The packets pass through the central hub in their original order. Therefore, collecting them in order of appearance will result in the reconstruction or accumulation of the original JPEG file. However, when re-compressing a JPEG file, it is undesirable to wait for the accumulation of the complete image file (each of the packets) in the central hub prior to re-compressing the file. Such a practice would result in a noticeable delay at client side. Therefore, we wish to compress segments of the image (a segment is comprised of at least one packet's data) and subsequently deliver them to the image's destination client.
A second constraint concerns multiple-image handling. The central hub supports multiple simultaneous remote clients. A JPEG-encoded image file to a single client is transferred wholly through one TCP connection between the client and the transmitter of the file (e.g. an FTP server or a web server). At the central hub, the data passing at any given time is an interleaving of all TCP connections currently active for all clients. In other words, packets targeted to different clients pass through the server sequentially.
A third constraint concerns keeping the resource consumption, in terms of CPU time and memory consumption, as minimal as possible.
The constraint of further compressing sequential JPEG images on-the-fly has been addressed before, but not for multiple simultaneous JPEG image files and thus, the present techniques employed are not adequate.
There are currently two algorithms that address the problem of a sequential JPEG image re-compression. The first algorithm compresses the whole image at one time while avoiding the DCT step included in the JPEG standard. This technique accumulates the whole image, decodes the Huffman encoded DCT coefficients, and then requantizes these coefficients by dividing them by certain integer values. Next, the technique of the first algorithm encodes the new DCT coefficient values using new Huffman codes, which are optimal according to the new values.
Lastly, the first algorithm changes the quantization table's entries to the new quantization coefficients. The change in quantization coefficient values varies according to the level of the desired re-compression.
The second algorithm compresses a single JPEG on-the-fly by first converting it to a bitmap and then re-encoding it by applying the JPEG standard with new and greater quantization values, determined according to the desired level of re-compression. The second algorithm can accept consecutive segments of a JPEG-encoded image and outputs the compressed image in consecutive segments. The second algorithm operates on a Minimum Coded Unit (MCU) block basis by accumulating the data describing a single MCU, decoding it to the corresponding pixel values in the bitmap and then re-encoding it to a JPEG file with new quantization values. This algorithm performs the DCT step twice and is therefore time consuming.
Furthermore, both of previously described algorithms are limited in that they only handle a single JPEG image. Therefore, it is evident that there is a need in the art for a system and a method for a better algorithm that can handle multiple JPEG images on-the-fly, re-compress segments of an image and subsequently deliver them to the image's destination. Such a solution would reduce the amount of data traffic, increase utilization of the line, reduce load from the Network and improve the communication.